﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Clases.Clases;
using Clases.ClasesPersistentes;
using Clases.Estructuras;
using Clases.Interface;

namespace Clases.Gestores
{
    public class GestorGrupo
    {
        public static List<StrGrupo> listarGrupos()
        {
            try
            {
                DaoGrupo dao = new DaoGrupo();
                List<StrGrupo> listaGrupos = dao.listarGrupos();
                return listaGrupos;
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        public static List<StrGrupo> listarGruposPorMateria(String pnombreMateria)
        {
            try
            {
                DaoGrupo dao = new DaoGrupo();
                List<StrGrupo> listaGrupos = dao.listarGruposDeMateria(pnombreMateria);
                return listaGrupos;
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        public static List<StrGrupo> listarGruposDeEstudiante(String pnombreUsuario)
        {
            try
            {
                DaoGrupo dao = new DaoGrupo();
                List<StrGrupo> listaGrupos = dao.listarGruposDeEstudiante(pnombreUsuario);
                return listaGrupos;
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        public static void insertarGrupo(String pCodigoGrupo, int pcuatrimestre, int pAnno, Usuario pprofesor, Materia pmateria)
        {
            try
            {
                Grupo tmpGrupo = new Grupo(pCodigoGrupo, pcuatrimestre, pAnno, pprofesor, pmateria);
                DaoGrupo dao = new DaoGrupo();
                dao.insertarGrupo(tmpGrupo);
                GestorAccion.insertarAccion(StrAcciones.agregarGrupo, Properties.Settings.Default.nombreUsuario);
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        public static void modificarGrupo(int pidGrupo, String pCodigoGrupo, int pcuatrimestre, int pAnno, Usuario pprofesor, Materia pmateria)
        {
            try
            {
                Grupo tmpGrupo = new Grupo(pCodigoGrupo, pcuatrimestre, pAnno, pprofesor, pmateria);
                tmpGrupo.idGrupo = pidGrupo;
                DaoGrupo dao = new DaoGrupo();
                dao.modificarGrupo(tmpGrupo);
                GestorAccion.insertarAccion(StrAcciones.modificarGrupo, Properties.Settings.Default.nombreUsuario);
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        public static IUIObject buscarGrupo(String pCodigo)
        {
            try
            {
                DaoGrupo dao = new DaoGrupo();
                Grupo resul = dao.buscarGrupo(pCodigo);
                return resul;
            }
            catch(Exception e)
            {
                throw e;
            }
        }

      /*
       * Parte WEB
       * Metodo buscarxGrupo
       * Parametros : codigo,horario
       * Retorna objeto Grupo
       * 
       */
        public static Grupo buscarxGrupo(String pCodigo)
        {
            try
            {
                DaoGrupo dao = new DaoGrupo();
                Grupo resul = dao.buscarGrupo(pCodigo);
                return resul;
            }
            catch (Exception e)
            {
                throw e;
            }
        }
    }
}
